# -*- coding: utf-8 -*-
"""
------------------------------------------------------------------------------
    File Name:  base64_demp.py
    Author   :  wanwei1029
    Date     :  2018-11-02
    Desc     :
------------------------------------------------------------------------------
"""
import base64


def base_demo():
    """
    base常用的方法是b64encode和b64decode
    b64encode,b64decode入参和出参都是字节类型(或acsii编码）。
    所以对于中文，都要转换成bytes，要不会报错。
    针对url，还有专门的url编码方法。
    """
    raw_str = "中国四川成都"
    # 直接编码会报错： a bytes-like object is required, not 'str'
    code_bytes = base64.b64encode(raw_str.encode())
    # 返回b'5Lit5Zu95Zub5bed5oiQ6YO9'，是一个bytes类型，注意如果要保存至文件或传递，要转换成字符串，要不解析会坑
    print(code_bytes)
    # decode() 会将byte转成字符串，再次强调，保存或传输要转换成字符串。
    print(code_bytes.decode())
    code_str = code_bytes.decode()
    decode_bytes = base64.b64decode(code_str)
    print(decode_bytes)
    # 将decode_bytes转成成utf-8的字符串，就Ok了
    print(decode_bytes.decode(encoding="utf-8"))


def demo():
    """
    """


if __name__ == '__main__':
    test_method = "base_demo"
    if test_method == "demo":
        demo()
    elif test_method == "base_demo":
        base_demo()
